package com.rolerealm.service;

import com.rolerealm.domain.dto.ConversationDTOs.ConversationCreateRequest;
import com.rolerealm.domain.dto.ConversationDTOs.MessageRequest;
import com.rolerealm.domain.dto.ConversationDTOs.MessageResponse;
import com.rolerealm.domain.vo.ConversationListItemVO;
import com.rolerealm.domain.vo.ConversationMessageVO;
import com.rolerealm.domain.vo.PageResult;

public interface ConversationService {
    Long createConversation(Long userId, ConversationCreateRequest request);
    MessageResponse sendMessage(Long conversationId, Long userId, MessageRequest request);
    void switchSkill(Long conversationId, Long userId, String skillType);
    PageResult<ConversationListItemVO> pageUserConversations(Long userId, Long characterId, int page, int size);
    PageResult<ConversationMessageVO> pageMessages(Long conversationId, Long userId, int page, int size);
    void deleteConversation(Long conversationId, Long userId);
    int cleanEmptyConversations(Long userId);
}
